// HJ20 密码验证合格程序
// https://www.nowcoder.com/practice/184edec193864f0985ad2684fbc86841
//密码要求:
// 1.长度超过8位
// 2.包括大小写字母.数字.其它符号,以上四种至少三种
// 3.不能有长度大于2的包含公共元素的子串重复 （注：其他符号不含空格或换行）
//输入：
// 021Abc9000
// 021Abc9Abc1
// 021ABC9000
// 021$bc9000
//复制
//输出：
// OK
// NG
// NG
// OK
#include <bits/stdc++.h>
using namespace std;

int typeCount(const string& strLine) {
    int hasDigit = 0;
    int hasUpper = 0;
    int hasLower = 0;
    int hasOther = 0;
    for (auto c : strLine) {
        hasDigit += isdigit(c);
        hasUpper += isupper(c);
        hasLower += islower(c);
        if (!isdigit(c) && !isupper(c) && !islower(c)) {
            hasOther += 1;
        }
    }
    return (hasDigit>0) + (hasUpper>0) + (hasLower>0) + (hasOther>0);
}

bool hasCommSubstr(const string& strLine) {
    int maxLen = 3;
    for (int i=0; i<strLine.length()-maxLen*2+1; i++) {
        string tmp = strLine.substr(i, maxLen);
        size_t pos = strLine.find(tmp.c_str(), i+maxLen);
        if (pos != string::npos) {
            return true;
        }
    }
    return false;
}

bool checkPassword(const string& strLine) {
    if (strLine.length() < 9) {
        return false;
    }
    if (typeCount(strLine) < 3) {
        return false;
    }
    if (hasCommSubstr(strLine)) {
        return false;
    }
    return true;
}

int main_hj20() {
  string strLine = "%Z7";
  while (cin >> strLine) {
    if (checkPassword(strLine)) {
      printf("OK\n");
    } else {
      printf("NG\n");
    }
  }
  return 0;
}
